Soft Tone Generator 2

By Steve Horne, 26 March 1999

This generator is a simple synthesizer, which is heavily based on my previous Soft Tone Generator 1. Its main enhancement is that the 'fractal effect' parameter is now specified as a high and low range. The actual value used in synthesizing a tone is selected from in this range, based on the current amplitude.

The result is that the waveform varies with the amplitude of the tone. In the early attack and the late decay stages of a note, the waveform can differ significantly from the sustain stage. Furthermore, notes played quietly will also have different waveforms.

Global Parameters

Waveform
This selects one of the following waveforms...
  1. Sine
  2. Triangle
  3. Double Triangle
  4. Hex
  5. Square
  6. Ramp
  7. Alternating Sawtooth
The precise shape of each of these is less important than its sound, so I won't bother with any graphics.
Attack
The rate at which the amplitude increases to the target amplitude when a note is on, specified as a half life in milliseconds.

Note - if the target amplitude is decreased while a note is playing, the note amplitude will decay to the new amplitude but the decay will occur at the 'attack' rate.

Decay
The rate at which the amplitude decays to zero when a note is off, specified as a half life in milliseconds.

Because all notes are sustained indefinitely, the note off command (the '1' key) will frequently be needed.

Effect Low
This is a coninuous value, which (once scaled) ranges from 0.0 to 9.0.

If this parameter is set to 1.0, the output will follow the input exactly.

If this parameter is set below 1.0, the function tends to 'fatten' input waveforms - triangles become sine waves (or square waves if Depth is high enough).

If this parameter is set to a high value, the function becomes chaotic. At 9.0 (with sufficiently high Depth), the output becomes white noise.

The low effect value is only used directly when the amplitude is zero. The effect value used also depends on the Effect High parameter and the current note amplitude.

Effect High
This is the same as Effect Low, but specifies the value to use when the amplitude of the note is at its maximum.
Depth
This parameter is the number of times that the distortion is applied.

If Depth is zero, the input is not changed.

If Depth has a low value, the algorithm reshapes the waveforms.

As Depth is increased (with a sufficiently high Effect value), more high harmonics appear until the signal eventually becomes white noise.

The fractal depth is limited to 10 (rather than the 32 supported by the fractal effect) because of the possibility of multiple tracks being handled at once.

Track Parameters

Note
Triggers notes.

If a new note is started while the previous note is still playing, the pitch changes immediately. This can sound similar to a wind instrument changing notes without stopping between - an effect such as Geonik's 'expression 2' should be used to make it more realistic.

Volume
This provides a target amplitude for the note being played. It is effectively the sustain level of the note. It can be changed at any time, and the note will smoothly follow the target amplitude.
If you have any comments, please e-mail them to steve@lurking.demon.co.uk.